<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
    //  async 函数  => 异步函数 (由Generator + Promise 封装实现的)

    // 如何把普通函数 改为 异步函数?  
    // 在函数前添加  关键词 async

    // async函数 (异步函数)  可以理解为对Promise进行了二次封装 根据函数的返回值 得到对应状态的Promise实例  (函数正常执行完毕 Promise实例=> fulfilled , 返回值作为Promise实例的存储的结果  失败:(语法错误 throw) => rejected  报错/throw的值  作为Promise实例的存储的结果)

    // 普通函数
    /* function fn() {
        console.log("代码执行了");
        return 1;
    }
    var result = fn();
    console.log(result); */

    // 如何把普通函数 改为 异步函数?  
    // 在函数前添加  关键词 async

    // async函数 (异步函数)  返回一个Promise实例 

    // 此处是同步代码  => 为了方便理解 async函数(一般用于处理异步问题)
    async function fn(){
        console.log("代码执行了");
        return 1;
        aaaa;
    }

    var p = fn();
    console.log(p);

    p.then(res => {
        console.log(res);
    }).catch(err => {
        console.log(err);
    })
</script>
</html>